local t = Def.ActorFrame{
	Name="BPMSection";
	CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
	CurrentCourseChangedMessageCommand=cmd(playcommand,"Set");
	SetCommand=function(self)
		-- check for a song or course. if there isn't one, hide it.
		local song = GAMESTATE:GetCurrentSong();
		local course = GAMESTATE:GetCurrentCourse();
		if not GAMESTATE:IsCourseMode() then
			self:visible(true);
		else
			self:visible(false);
		end;
	end;

	Def.BPMDisplay{
		File=THEME:GetPathF("","BPMDisplay");
		Name="BPMDisplay";
		InitCommand=cmd(horizalign,right;shadowlength,0;draworder,100;maxwidth,94;);
		OnCommand=cmd(stoptweening;playcommand,"Set");
		SetCommand=function(self)
			if not GAMESTATE:IsCourseMode() then
				self:SetFromGameState();
			end;
		end;
		CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
		CurrentCourseChangedMessageCommand=cmd(playcommand,"Set");
	};
};

return t;